The present invention relates to a plurality of terminals that executes a program over a network such as the Internet to perform collaborative activities, and a server for these terminals. For example, the present invention relates to groupware, terminals on which online games such as massive multi-player online (MMO) games are played, a server for such terminals, a technique for transmitting data between the server and these terminals, and a technique for grouping the terminals.
Data transmission between a server and a plurality of terminals associated with the server over a network (e.g., the Internet) is used for joint operations and simultaneous processing among two or more users. This can be found in, for example, groupware designed for organizing/managing schedules of two or more users, groupware designed for BBS sharing, and online games that allow users to achieve a certain purpose within the same virtual space.
Such data transmission requires simultaneous flows of a large amount of data from a server to a plurality of terminals. For example, groupware may transmit, to each terminal, shared data for a scheduling database or a BBS. An online game program may transmit, to terminals of individual users, graphics data to provide a virtual space in the game, e.g., a grotto or a field, data associated with bodily powers and belongings of users (players).
Massive multi-player online games in particular require transmission of data-intensive animated images that are beautiful to look at in order to give variety to the game. Status and parameters which are associated with stamina and/or belongings of characters in the game controlled by the users change every second. An ongoing game program is required to update the ever-changing gaming status and parameters as soon as possible.
Furthermore, typical massive multi-player online games allow an in-game character to recruit other in-game characters as a member of the party he or she belongs to. This recruiting is done in, for example, a virtual lobby leading into the main feature of the game. After finding necessary members, the in-game character forms a party with these members to achieve a certain purpose in the main feature.
The server (game server) managing the progress of a game is, however, connected to a huge number of network game terminals. The server may often be required to send a large amount of data to these network game terminals. The volume of data to be sent may possibly cause some problems especially when it exceeds a certain limit. Such problems include a delay of processing in, for example, status update or a process lag like when a game gets bogged down.
The problem of a processing delay can partly be solved by reducing the amount of data for animated images. This, however, often sacrifices the quality of graphic images. Another possible solution would be to decrease the number of users allowed to connect to the server at a given period of time. A consequent lower quality of graphic images spoils fun of games. Decreasing the number of users allowed to connect to a single server raises the need for increasing the number of servers. This is disadvantageous by economic considerations.
Thus, for the proper data transmission between a server and a plurality of terminals associated with the server over a network such as the Internet, it is desired to provide a transmission technique that can reduce the load on the server as much as possible by achieving efficient transmission rather than by reducing the amount of information itself (e.g., reducing the quality of graphic images) to be transmitted to the terminals.
As to massive multi-player online games, in-game characters are typically allowed to recruit or gather around other in-game characters to form a party. This recruiting is done in a specified virtual space such as a virtual lobby. The user can spend time in the virtual lobby before stepping into the main feature of the game. After drawing necessary members into the game and grouping them to form a party, the user moves to the main feature of the game. Thus, online games of this type suffer problems that “no user can move to the main feature of the game before making up the necessary number of the members for the party and a gaming process is interrupted by this time-consuming process of collecting the members.”
The time taken for grouping of network game terminals (formation of a party in the game) may be reduced if the game server automatically choose members to be joined in a party. In such a case, the game server may confirm the existing members' intent to add a new member to the party which they belong to. Automatic choice of a member after confirmation of other users' intent often increases the amount of data processing on the server because the server is connected to a large number of network game terminals. In addition, before the formation of a party, it is necessary to iron out the differences among users for confirmation of each user's intent to add a member to the party or for determination of the number of persons of a party necessary for a predetermined purpose. In order to cope with all of the above-mentioned requirements, it takes a lot of time for data processing and confirmation of users' intent. This makes automatic choice of party members practically unfeasible. Moreover, with conventional techniques, once a user whose in-game character belongs to a party goes offline (i.e., his or her game terminal is disconnected from the game server), the user is not allowed to return his or her in-game character to the same party. He or she should join in another party and consequently, grouping of the network game terminals should be done again from the beginning. This causes frequent occurrence of complicated grouping of the network game terminals. The user cannot go back to the game while keeping his or her original party, and continuity of the game is not ensured.
Therefore, it is desired to rapidly group network game terminals in deference to users' wishes, to reduce occurrence of grouping of the network game terminals, and to allow a user to return to the game after formation of a new party, ensuring continuity of the game.